home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
OS2
/
UEDP201.ARJ
/
UEDIT.DOC
< prev
next >
Wrap
Text File
|
1992-03-17
|
61KB
|
1,681 lines
UEDit Version 2.01
Maximus-CBCS User Base Editor
(C) Copyright 1990-1992 by CodeLand, All Rights Reserved
Created March 17, 1992.
Written by Colin Wheat of Fidonet 3:690/613
OS/2 Version ported by Graham J Stair of 3:711/409
LICENSE AGREEMENT
1. DISTRIBUTION. YOU MAY COPY AND DISTRIBUTE VERBATIM COPIES OF
UEDIT EXECUTABLE CODE AS YOU RECEIVE IT, IN ANY MEDIUM,
PROVIDED THAT YOU CONSPICUOUSLY AND APPROPRIATELY PUBLISH ON
EACH COPY A VALID COPYRIGHT NOTICE; KEEP INTACT THE NOTICES ON
ALL FILES THAT REFER TO THIS LICENSE AGREEMENT AND TO THE
ABSENCE OF ANY WARRANTY; PROVIDE UNMODIFIED COPIES OF THE
DOCUMENTATION AS PROVIDED WITH THE PROGRAM; AND GIVE ANY OTHER
RECIPIENTS OF UEDIT A COPY OF THIS LICENSE AGREEMENT ALONG WITH
THE PROGRAM. YOU MAY CHARGE A DISTRIBUTION FEE FOR THE PHYSICAL
ACT OF TRANSFERING A COPY, BUT NO MORE THAN IS NECESSARY TO
RECOVER YOUR ACTUAL COSTS INCURRED IN THE TRANSFER. UNDER NO
CIRCUMSTANCES IS UEDIT TO BE DISTRIBUTED IN SUCH A WAY AS TO BE
CONSTRUED AS "VALUE ADDED" IN A SALES TRANSACTION, SUCH AS, BUT
NOT LIMITED TO, SOFTWARE BUNDLED WITH A MODEM OR CD-ROM
SOFTWARE COLLECTION.
2. COPYING. YOU MAY NOT COPY, SUBLICENSE, DISTRIBUTE OR TRANSFER
UEDIT EXCEPT AS EXPRESSLY PROVIDED UNDER THIS LICENSE
AGREEMENT. ANY ATTEMPT OTHERWISE TO COPY, SUBLICENSE,
DISTRIBUTE OR TRANSFER UEDIT IS VOID AND YOUR RIGHTS TO USE THE
PROGRAM UNDER THIS LICENSE AGREEMENT SHALL BE TERMINATED.
3. MODIFICATION. WITH THE EXCEPTION OF ARCHIVING METHOD, UEDIT
SHOULD NOT BE DISTRIBUTED IN ANY MODIFIED FORM. THE COMPLETE
ARCHIVE SHOULD BE DISTRIBUTED CONTAINING THE ORIGINAL FILES. IT
MAY BE RE-PACKAGED USING A DIFFERENT ARCHIVAL METHOD AS LONG AS
THE CONTENTS OF THE ARCHIVE ARE THE SAME AS THAT OF THE
DISTRIBUTION KIT. ADDITIONAL FILES MAY NOT BE ADDED TO ARCHIVE.
4. PROGRAM STATUS. THIS PROGRAM IS NOT SHAREWARE, PUBLIC DOMAIN
NOR FREEWARE. IT IS SIMPLY "FREE FOR NON-COMMERCIAL USE". THE
INTENDED AUDIENCE IS THE EVER GROWING NUMBER OF NON-COMMERCIAL
MAXIMUS-CBCS OPERATORS WORLD WIDE. COMMERCIAL SYSTEMS ARE
ENCOURAGED TO USE THE PROGRAM HOWEVER, AND SHOULD REGISTER THE
PRODUCT USING THE REGISTRATION FORM SUPPLIED WITH THE PACKAGE.
5. COMMERCIAL DEFINITION. FOR THE PURPOSES OF THIS DOCUMENT,
"COMMERCIAL USE" IS DEFINED AS OPERATION OF THIS SOFTWARE ON
SYSTEMS CONSISTING OF THREE OR MORE COMPUTERS OR DATA LINES; OR
OPERATION OF THIS SOFTWARE ON SYSTEMS SPONSORED OR SUPPORTED IN
ANY WAY BY COMMERCIAL COMPANIES OR ORGANISATIONS.
6. DISCLAIMER. USE THIS PROGRAM AT YOUR OWN RISK. NO WARRANTY IS
STATED OR IMPLIED. THE AUTHOR SHALL NOT BE HELD RESPONSIBLE
FOR ANY DAMAGES RESULTING FROM IT'S USE DIRECTLY OR INDIRECTLY.
I
ACKNOWLEDGMENTS AND CREDITS
We would like to thank the following individuals for their
continued support and assistance.
Graham Stair kindly offered to port UEDit to the OS/2 operating
system back in Dec 91. Without his efforts we'd likely not have
been able to provide OS/2 support at this time. Graham has also
helped with improvements to the code, both at problem or bug
report levels and at the feature addition level. Thanks Graham.
Special thanks go to the beta testers who provided both problem
reports and feature requests. This includes the Australian beta
test network, including Paul Marwick, David Nugent, Lincoln
Dale, and Andrew Gulovsen; and the International Maximus Beta
team, of which the Author is a member.
Thanks to Scott Dudley for his ever timely responses, the
Maximus User Structures, and for continuing to develop the
Maximus-CBCS bulletin board package. Scott shows no apparent
signs of easing up on development, such that there is much to
look forward to with Maximus-CBCS in this 'electronic' frontier
of the emerging 'information' age.
Thanks also to those who aided in development of earlier
versions of UEDit. These include Andrew Waite, who originally
suggested a stand alone User editor and worked on the original
documentation; Stewart Robertson who kindly updated the
documentation with the updates and changes for v1.02; and Paul
Marwick for both extensive testing on early beta versions and
many useful suggestions, many of which have been implemented.
The following companies hold the following trademarks or market
the following products mentioned or referred to in this manual.
IBM Corporation, Inc. OS/2
IBM Corporation, Inc. IBM PC
Microsoft Corporation, Bellevue, WA MS-DOS
Quarterdeck Office Systems, Santa Monica, CA DesqView
SoftLogic Solutions, Inc., Manchester, NH Double Dos
Borland International, Scotts Valley, CA Turbo C
Borland International, Scotts Valley, CA Borland C++
SemWare Qedit
Omniverse Software Corp. Galaxy
Scott Dudley Maximus
Scott Dudley Squish
Scott Dudley SquishMail
Scott Dudley MsgAPI
Wynn Wagner Opus
II
TABLE OF CONTENTS
SECTION TITLE PAGE
LICENSE AGREEMENT I
1 Distribution ................... I
2 Copying ........................ I
3 Modification ................... I
4 Program Status ................. I
5 Commercial Definition .......... I
6 Disclaimer ..................... I
ACKNOWLEDGMENTS AND CREDITS II
TABLE OF CONTENTS III
TABLE OF CONTENTS IV
1 CHAPTER 1 -- INTRODUCTION ........... 1
1.1 Requirements ................... 1
1.2 Features ....................... 1
1.3 Distribution Notice ............ 2
2 CHAPTER 2 -- CONFIGURATION .......... 3
2.1 Command Line ................... 3
2.2 Configuration file ............. 5
2.2.1 UpGrade Profile .............. 5
2.2.2 Access Labels ................ 5
2.2.3 Key Labels ................... 5
2.2.4 Language Labels .............. 5
2.2.5 File Compression Labels ...... 5
2.2.6 Mouse Speed .................. 6
2.2.7 Date Format .................. 6
2.2.8 Sound Toggle ................. 6
2.2.9 Password Hide Toggle ......... 6
2.2.10 Pack Save Toggle ............. 6
2.2.11 Custom Renumber Toggle ....... 6
2.2.12 Descriptions Display Toggle .. 6
2.2.13 Global Delete by Days ........ 6
3 CHAPTER 3 -- OPERATION .............. 7
3.1 Record Addition ................ 7
3.2 Base Packing ................... 7
3.3 Statistics ..................... 8
3.4 Global Delete .................. 8
3.4.1 Set Days Old ................. 9
3.4.2 Calls ........................ 9
3.4.3 Key Mask ..................... 9
III
TABLE OF CONTENTS (CONTINUED)
SECTION TITLE PAGE
3.4.4 Privilege Levels ............. 9
3.4.5 Expiry Mask .................. 9
3.4.6 Credit Mask ................. 10
3.5 User Base Sort ................ 10
3.5.1 Multiple Keys ............... 10
3.5.2 Sort methods ................ 11
3.6 Field Edit Keys ............... 11
3.7 Program Hot Keys .............. 12
3.7.1 Edit Screen .................. 12
3.7.2 Browse Screen ................ 12
4 CHAPTER 4 -- RECORD DESCRIPTIONS .... 13
4.1 Display and Editing ........... 13
4.2 Indication .................... 13
4.3 Deletion ...................... 13
4.4 Technical ..................... 14
4.5 EXTPack ....................... 14
4.5.1 Operation ................... 14
4.5.2 Exporting ................... 14
4.5.3 Importing ................... 14
4.6 EXTAdd ........................ 15
4.6.1 Execution ................... 15
4.6.2 Imported Data ............... 15
5 CHAPTER 5 -- BATCH MODE ............. 17
5.1 Operation ......................17
5.1.1 Features ...................... 17
5.1.2 Deletion ...................... 17
5.1.3 Sorting ....................... 18
5.1.4 Deletion Logging .............. 18
6 CHAPTER 6 -- MISCELLANEOUS .......... 19
6.1 Problems and Bug Reports ...... 19
6.2 Latest Version ................ 19
6.3 About UEDit ................... 19
APPENDIX A -- Configuration File Structure .. 21
APPENDIX B -- Description File Structure .... 23
IV
INTRODUCTION UEDit Page 1
CHAPTER 1
INTRODUCTION
UEDit is an external Maximus-CBCS User Base Editor, allowing
rapid editing, searching and sorting of your user records.
Although the Maximus inbuilt User Editor is full featured,
UEDit allows quick and simple access to the User base. It is
able to fully use system resources without the code and space
limitations under which a remote editor usually must operate.
1.1 Requirements
MS-DOS 3.x, its equivalent, or later version is required for
DOS operation. Operation under OS/2 requires OS/2 version 1.3
or later.
300Kb of free RAM is recommended. Less is possible depending on
the number of records in the user base. More may be required
and sorting and packing will require more depending on the size
of your user base. The author runs UEDit in a 300Kb DESQview
window with approximately 500 records in the user base.
1.2 Features
* Pop-up Menu system and full screen operation.
* Full support for Maximus-CBCS v2.xx, and 8192 user
records.
* Optional text description or comment for every user
record using the new to Maximus-CBCS v2.xx format.
* Browse screen allows paging through the User Base.
* User Base sorting with ten key choices in two directions.
* User Base search with five key choices including
Name/Alias.
* Instant User upgrade system, with eight configuration
profiles.
* Global functions allowing; record deletion, and setting of
the Expiry system, Keys, and the Credit and Debit fields.
* Automated user base global sort and pack batch mode
allowing batch file periodic maintenance.
* Six user base statistics report screens.
* Optional text descriptions of access levels, keys, and
language, and file compression record fields.
* Available for OS/2, and DOS with DesqView support.
* MicroSoft mouse keyboard emulation support with
sensitivity adjustment under MS-DOS.
INTRODUCTION UEDit Page 2
1.3 Distribution Notice
This package may be posted for download or file request by any
Fidonet technology system in archived form, and in adherence to
the terms of the software License. No profit may be realised
from such distribution, although UEDit may be provided for
download on commercial or pay for access systems.
UEDit is distributed in two versions, for the MS-DOS and OS/2
operating systems. The archive names are UED201.LZH for MS-DOS
and UEDP201.LZH for OS/2.
The MS-DOS distribution archive contents (UED201.LZH) are
listed below:
UEDIT.EXE - The program executable.
EXTPACK.EXE - Record descriptions maintenance utility
EXTADD.EXE - Record descriptions online utility
EXPRPT.EXE - Simple Expiry system report generator
UEDIT.DOC - Main documentation
WHATSNEW.201 - Changed since UEDit version 2.00
REGISTER.FRM - Commercial registration form
The OS/2 distribution archive contents (UEDP201.LZH) are
listed below:
UEDITP.EXE - The program executable.
EXTPACKP.EXE - Record descriptions maintenance utility
EXTADDP.EXE - Record descriptions online utility
EXPRPTP.EXE - Simple Expiry system report generator
UEDIT.DOC - Main documentation
WHATSNEW.201 - Changed since UEDit version 2.00
REGISTER.FRM - Commercial registration form
CONFIGURATION UEDit Page 3
CHAPTER 2
CONFIGURATION
2.1 Command Line
Program syntax: UEDit [-switch -switch ... ]
All command line switches are case insensitive.
Listed below are the command line controls:
-U<path> Path to Maximus User files & Area.Dat
-C<path> Configuration file path & name
-B BIOS screen writing
-R CGA snow reduction
-M Force monochrome text attributes
-N Don't display background screen
-V Use Browse screen as default
-F<name> User file name; default is USER.BBS
-P Automatic Purge for batch files
-S#[R] Automatic Sort method for -P
-L<path> Optional log file name for -P
-D Debug display of the lastread pointer
-A Alternate colours for menu systems
-G### Start at ### record, zero based
-I Never set system mouse sensitivity
-? Program help screen
Let's have a look at each one in a little more detail:
-U<path> Full path to Maximus-CBCS User files. Default is
the current directory. e.g. -UC:\Max
-C<path> UEDit Configuration file path and name. This switch
allows operating with multiple configurations,
especially useful with the -P batch mode operation.
-B BIOS screen writing.
-R CGA snow reduction.
-M Force monochrome text attributes.
-N Turns the background display screen off.
-V Use Browse screen at power up. Default is the Edit
screen.
CONFIGURATION UEDit Page 4
-F<name> User file file name. Default is USER.BBS. This
option is not normally required. It specifically
allows easy UEDit operation on systems running
multiple user files.
-P Automatic Pack for automated batch file operation.
This command tells UEDit to run the global delete,
and user base pack options, then exit to the DOS
prompt. Options include the -S and -L commands
below, and global delete settings as set on the
Global delete screen and saved with the save
settings command.
-S#[R] Specifies a sort type and direction for use with
the -P batch mode command.
e.g. -S2 - Sort by Second name, ascending.
-S7R - Sort by Access, descending.
For the sort types, see section 4.5.2 (Sort methods).
-L<path> Specifies an optional log file name for logging of
records deleted by the global delete function
during a batch mode -P run. e.g. -LC:\Log\Pack.Log
-D Optional debug display of lastread pointer on the
Edit screen with the descriptions window in view.
This also activates editing of the Lastread pointer,
and sorting by Lastread pointer. WARNING: Changing
the Lastread Pointers will cause problems unless
you know exactly what you are doing.
-A Alternate colour for the Edit, Browse, and Pop-up
menu systems.
-G### Start operation at user record number ###.
If the number specified is greater then available
records, UEDit seeks to the last record. Thus
"UEDit /g9999" would provide a goto last record
function.
-I Never set system mouse sensitivity. Problems are
possible with some mouse drivers, IMOUSE.COM for one.
UEDit sets the mouse sensitivity at powerup when
running from a configuration file. Thanks to Brian
Hampson for his help in tracking this down.
-? Program help screen.
CONFIGURATION UEDit Page 5
2.2 Configuration File
UEDit can optionally create and reload a configuration file.
The default file name is UEDit.Cfg, see the -C command line
switch for details of running multiple configuration files.
Currently the following items can be saved and reloaded from
the UEDit configuration file: Access Labels, Key Labels,
Language Labels, File Compression Labels, Global Deletions
settings, Global Expiry settings, Global Key settings, Global
Credit/Debit settings, Upgrade Profile settings, Mouse Speed,
Date Format, Sound toggle, Password Hide toggle, Pack Save
toggle, Custom Renumber toggle, & Descriptions Display toggle.
The configuration file is binary format, so cannot normally be
accessed externally. See appendix A for C language structure of
this file. Running the Configuration menu Save Setups command
writes the configuration file so that UEDit will load all saved
settings for future program runs. UEDit attempts to note
changes made and will prompt for configuration save during
program exit if you've made changes.
2.2.1 UpGrade Profile
This configuration screen allows editing of eight user profiles
for use by the Upgrade command on the Edit screen. The Upgrade
command allows instant setting of Priviledge, Credit, Expiry,
and Keys for the current user record.
2.2.2 Access Labels
These are local to UEDit text descriptions of each of the
Maximus privilege levels. Purely for local SysOp operation.
2.2.3 Key Labels
These are local to UEDit text descriptions of each of the
Maximus user Keys. Purely for local SysOp operation.
2.2.4 Language Labels
These are local to UEDit text descriptions of each of the
Maximus eight supported optional languages. Purely for local
SysOp operation. Due to file name and pathing differences
between systems UEDit does not attempt to find what languages
are installed on your system. Set these labels to match your
Maximus setup.
2.2.5 File Compression Labels
These are local to UEDit text descriptions of up to fifteen of
the Maximus file compression utilities. Purely for local SysOp
operation. Due to file name and pathing differences between
systems UEDit does not attempt to find which archivers are
installed on your system. Match these labels to your setup.
CONFIGURATION UEDit Page 6
2.2.6 Mouse Speed
Allows adjustment of the MicroSoft compatible mouse sensitivity
settings. If a configuration file is loaded at UEDit power up
the saved settings are set on the system. See also the "-I"
command line switch.
2.2.7 Date Format
Allows selection of the preferred date display format. Using
the Save Settings command on the Configuration menu saves the
selected display format in the configuration file.
2.2.8 Sound Toggle
This toggles sound usage on and off.
2.2.9 Password Hide Toggle
This toggles the Edit screen password hide feature. A quick
access command 'W' also toggles this flag from the Edit screen.
2.2.10 Pack Save Toggle
This turns on the optional user base Pack command's save
deleted records to disk function. When turned on, records
purged from the user file are written to a file in the Maximus
directory called USER.PRG.
2.2.11 Custom Renumber Toggle
The UEDit Pack command can also optionally renumber Opus style
#.BBS custom welcome files. These files must exist in the
Maximus directory. See the Maximus-CBCS documentation for
details. Use this toggle to activate or disable the renumber
function.
2.2.12 Descriptions Display Toggle
This toggles the Edit screen User description display. The
shortcut command from the Edit screen is the TAB key.
2.2.13 Global Delete by Days
All settings from the global delete screen are also saved in
the configuration file. To save your global settings use the
Save Settings configuration menu option before exiting UEDit.
OPERATION UEDit Page 7
CHAPTER 3
OPERATION
The use of hotkeys, full screen menus, and simple user
interface means that UEDit puts the power to manage your user
base at your finger tips. All functions are controlled directly
from easily accessible menu options. UEDit is rich in control
keys, see both the field editing, and program hot keys listed
in section 3.7. Features to look for are the TAB descriptions
toggle on the Edit screen, and the TAB and Shift TAB PAN
commands on the Browse screen.
3.1 Record Addition
The Append New Record pop-up menu option adds a new blank user
record to the user file. The new record is appended to the end
of the file. UEDit makes the new record the current record, and
adjusts the screen to display it. The string "Record created by
UEDit" is entered in the name field to aid identification of
newly added records. During the record addition process UEDit
assigns the new record an unused message lastread pointer
offset. UEDit uses the Maximus-CBCS method where the user base
is scanned and the first unused offset is used. This fills the
holes left by routine record purging where offsets vanish from
the user file, aiding to avoid unnecessary growth in size of
the message areas lastread files. UEDit needs only scan the
user base once to load the offsets, later additions will seem
instantaneous. During Index scans UEDit also loads these
offsets, so that a record addition performed after an Index
will not need to scan the base.
3.2 Base Packing
The Pack User File pop-up menu option rewrites the User file,
deleting all records marked with the Deleted flag. It writes
the new User file using the last Index method, giving you the
option of sorting the on disk user base.
The pack option is generally used to remove old deleted records
from the user base. Also as mentioned above, it writes using
indexed order, so this option is used to sort your user base,
in conjunction with the Index command.
OPERATION UEDit Page 8
When records are removed from the user base there are several
related items that should be taken care of. These are message
lastread pointer cleansing, optional Opus style #.BBS custom
welcome screen renumbering, and optional record save to a
backup file. See the UEDit setup for flags that either turn on
or off the welcome file renumbering and the record save
feature. The message lastread clensing is required and cannot
be disabled. For message lastread pointer clensing, UEDit
attempts to read the file AREA.DAT in the Maximus directory. If
this is successful, UEDit then scans the file for message areas
and zeros out the lastread pointer for each area.
3.3 Statistics
Included on the pop-up menu are six statistics screens, and a
current memory available function under MS-DOS. UEDit does not
scan the user base during power up so that base must be scanned
to gather the needed statistics for display during the first
execution of any of the statistics screens.
Most of the statistics screens are self explanatory, with the
exception of the Best Ten Users screen. This is a weighted
display, sorted by the index figure displayed in the right
hand column. The index figure is calculated from all of user
calls to the system, the total uploads, and the total
downloads.
3.4 Global Delete
The function of this screen is to either set the delete flag
depending on the set criteria, or to clear all delete flags,
during scanning of the complete user base. Records are not
removed. Assuming the record deleted flags are set as you would
choose after a global delete run, the Pack command can then be
used to remove or move deleted records from the user base. Note
that all settings on the Global Delete screen are saved in the
UEDit configuration file with the Save Settings command.
OPERATION UEDit Page 9
There are six setting types that control how UEDit decides
whether a record should be deleted. These are; days since last
call, total calls made, keys to block deletion, privilege level
to process, a flag for not deleting records with an expiry
setting, and a flag for not deleting records containing a
Credit value. These six control types are detailed below.
3.4.1 Days
These setting are the heart of the Global Delete screen. A days
old figure can be set for each of the twelve privilege levels.
All entries default to 180 days, which is approx. six months.
As an example, if you have a figure of 180 for the Normal
privilege level, then all records of Normal privilege can only
be marked as deleted if their last call date is earlier than
180 days from the current system date. See also the Calls entry
below.
3.4.2 Calls
The Calls entries are also considered when a priviledge level
is flagged for processing, such that the Days since last call
entry is checked. To enable the record to be deleted, as well
as passing the Days check detailed above, the record much have
make less calls to the system than the entered Calls value. To
avoid a lockout problem, where after enough calls have been
made the record would not be deleted no matter how long since
the last call, there is also an "All Levels" Days setting with
no Calls entry, used as a last check for each priviledge level
flagged for processing. Note that the "All Levels" setting is
ONLY applied to priviledge levels flagged for processing.
3.4.3 Key Mask
This enables you to prevent deletion of records possessing one
or any combination of user keys. If you don't want keys
considered during the Global Delete, set all key flags to YES,
meaning don't prevent deletion for any key.
3.4.4 Privilege Levels
With this option, you can mask out whole privilege levels from
the Global Delete process. Any level set to NO will never be
marked as deleted. Normally you'd have the higher levels e.g.
Sysop, AsstSysop, and Clerk masked out on the assumption these
levels should never be removed during global maintenance.
3.4.5 Expiry Mask
The expiry mask flag, when set to NO, prevents all records
which have an Expiry setting other than None from being marked
as deleted. Useful for systems actively using the Maximus-CBCS
account expiry subsystem. The assumption is that if the account
already has an automatic expiry setting active, global deletion
by date would not be necessary nor desirable. To ignore Expiry
settings during Global Deletion runs, set this flag to YES.
OPERATION UEDit Page 10
3.4.6 Credit Mask
The credit mask flag, when set to NO, prevents all records
which have a Credit setting other than zero from being marked
as deleted. To ignore Credit settings during Global Deletion
runs, set this flag to YES.
3.5 User Base Sort
UEDit supports ten sort methods, including the default index
which is user file order. Sort direction for each type can be
either Normal (ascending), or Reverse (descending). Maximus
requires that the Sysop user record always be first record in
the user file. For this reason UEDit never moves or sorts the
first record.
Sorting is accessed by the Index menu option off the pop-up
menu. To choose a sort direction, simply hit <Enter> with the
menu bar on the Normal/Reverse item. To sort the user base,
choose the sort type with the menu bar, and press <Enter>.
UEDit references all on disk data via an in memory index. This
index is set to file order at program start up. Using the
indexing or sorting commands is simply sorting the in memory
index. This has several implications. Firstly, using the sort
commands on the Index menu does NOT affect the user file on the
system disk drive. To save a sort order permanently, you should
execute the Pack command, which rewrites the user file to disk
using the current sort index. Secondly, depending on system
response time (speed) some of the UEDit functions will run at
reduced speed when operating with other than the File Order
index. The Browse screen is one such case. On the Author's
33mhz 386 with 17ms ESDI HD's the speed is quite acceptable.
However testing shows increased delay times even on 286
machines. The problem is caused by the new program design, with
all user records always referenced off disk. This was necessary
to enable support for very large user bases.
3.5.1 Multiple Keys
Multiple key sorting is supported, by executing consecutive
sorts. UEDit does maintain existing index order during
non-unique key indexing, making this possible. As an example,
to sort the user base by privilege level, using last name as a
secondary key (meaning each privilege level would have records
in second name order), firstly sort by second name, then by
privilege. The privilege sort will maintain the existing order
for all privileges of the same value.
OPERATION UEDit Page 11
3.5.2 Sort methods
1 File Order - Current User File order (the default)
2 2st Name - Last name
3 1nd Name - First name
4 Location - City field
5 Password - Password
6 Call Date - Date field
7 Privilege - User Privilege Level
8 No of Calls - Calls made to the system
9 Kb DownLoad - Total users downloads
10 Kb UpLoads - Total users uploads
11 Telephone - Telephone
3.6 Field Edit Keys
General command keys which are active during field editing and
data entry are listed below. Several of these key commands are
not noted clearly within the program.
ESC - Abort field editing, exit
END - Goto end of current field
HOME - Goto start of current field
UP ARROW - Step up one edit field
DOWN ARROW - Step down one edit field
TAB - Step one field right
Shift TAB - Step one field left
DEL - Delete character at cursor
BACKSPACE - Delete character left
Ctl BACKSPACE - Delete word left
Ctrl R - Restore field to original contents
Ctrl T - Delete word right
Ctrl U - Delete to end of field
Ctrl Y - Delete to end of last field
Ctrl-<Enter> - Save and exit field editing
INS - Toggle insert mode
OPERATION UEDit Page 12
3.7 Program Hot Keys
Several command functions can be executed by hotkey, giving a
quick 'shortcut' access to the function. These exist in various
places including the Edit screen and the Browse screen.
3.7.1 Edit Screen
W - Toggle Password hide
X - Record expiry edit screen
K - Record keys edit screen
Alt-1 to Alt-X - Key toggle
< - Privilege level downgrade
> - Privilege level upgrade
DEL - Toggle record deleted flag
TAB - Description display toggle
HOME - Goto first record
END - Goto last record
UP ARROW - Step back one record
DOWN ARROW - Step forward one record
Grey + - Steps forward one record
Grey - - Step back one record
ESC - Pop-up menu
3.7.2 Browse Screen
< - Privilege level downgrade
> - Privilege level upgrade
DEL - Toggle record deleted flag
TAB - PAN screen right
Shift TAB - PAN screen left
HOME - Goto first record
END - Goto last record
PAGE UP - Step back 15 records
PAGE DOWN - Step forward 15 records
UP ARROW - Step back one record
DOWN ARROW - Step forward one record
ESC - Pop-up menu
RECORD DESCRIPTIONS UEDit Page 13
CHAPTER 4
RECORD DESCRIPTIONS
UEDit now supports the Maximus-CBCS v2.xx external record
description system. This allows optional text comments for each
user record. The design allows for up to 4095 characters,
though for screen space reasons UEDit currently limits it's
creation and editing to 165 characters, which is 3 short lines.
4.1 Display and Editing
Descriptions are displayed and edited from the Edit screen. A
Descriptions flag exists on the Setup menu to toggle display on
or off, with the TAB key being a quick shortcut hotkey for the
same function. The Descriptions window overlays some of the
fields on the Edit screen, TAB quickly toggles between the two
alternate displays. This display flag is saved in the
configuration file so that UEDit will default to your preferred
display. With the descriptions window toggled on, using the
Edit command allows editing or creation of the description for
the current record. When toggled off normal editing is
possible.
4.2 Indication
On the Edit screen, a new three character field to the right of
the City field shows blank for no description, and 'EXT' for
records possessing an extended description. For the Browse
screen, existence of an extended description is indicated by a
small bullet character on the right hand edge of the screen.
Note that these two indicators are displaying the status of the
USER.BBS descriptions pointer. The descriptions text is stored
in a file called USER.EXT in the Maximus directory. If this
file had been deleted UEDit will not find the description,
displaying a blank description field. To clear the descriptions
pointer in this case, as with description deletion below,
simply save a blank description.
4.3 Deletion
External descriptions are deleted by simply saving a blank
description field. Toggle the description display on, use the
Edit command, <Enter> down to the descriptions window, press
HOME (goto start of current field), press Ctrl-Y (erase current
field), and press Ctrl-Enter (save and exit).
RECORD DESCRIPTIONS UEDit Page 14
4.4 Technical
UEDit attempts to reuse free space in the descriptions file
when writing new descriptions or updating descriptions to a
larger size. See also the section concerning the EXTPack
utility and the EXTAdd utility.
4.5 EXTPack
This utility performs a purge and pack on the USER.EXT external
description file. This is not normally required, a manual run
every few months would be suitable for most systems.
4.5.1 Operation
EXTPack rewrites the USER.EXT file in the user base order, and
removes unused space, adjusting the USER.BBS 'extra' fields as
required. It makes no other change to the main user base.
Program command line options are listed below.
Syntax: EXTPack [-switch -switch ... ]
-U<path> Path to Maximus-CBCS User files
-E Export records to report file
-I Import records from report file
-A Ascii delimited format for Export/Import
-F<name> Export/Import file path & name
-? Program help screen
EXTPack is also capable of exporting and importing the
descriptions database, in both text format, and ascii delimited
format. This is to enable quick and simple setup and
maintenance of the user descriptions system.
4.5.2 Exporting
Exporting is via the -E command line. e.g. "EXTPack -E" would
export all user descriptions to the default text file
EXTPACK.TXT. To use a defined filename, use the format -F<name>
e.g. "EXTPack -E -Fc:\bbs\export.txt". The optional -A command
would cause the exported data to be in ascii delimited format.
4.5.3 Importing
Importing is via the -I command line. e.g. "EXTPack -I" would
import from the default text file EXTPACK.TXT. To use a defined
filename, use the format -F<name> e.g. "EXTPack
-I -Fc:\bbs\import.txt". The format of the import text file is
exactly as generated by the -E Export command. Note that if the
-A command format modifier was used during the export, it must
also be used during the Import. The Imported text file does NOT
need to include all records as the export report does. Use your
text editor to edit descriptions, and to remove all unchanged
records before using the Import function.
RECORD DESCRIPTIONS UEDit Page 15
4.6 EXTAdd
EXTAdd is a small utility for ONLINE use with the external
record description system. It's function is to place the
current system date into a new users description field, or
optionally the contents of an external text file, possibly
written with Maximus mecca commands during the newuser logon.
Following is the EXTAdd command line options.
Syntax: EXTADD [-switch -switch ... ]
-U<path> Path to Maximus-CBCS User files
-F<name> Optional import file path & name
-N Task number, default is zero
-R User record number; zero based
-D Date format mm/dd/yy; default: dd/mm/yy
-? Program help screen
4.6.1 Execution
Execution should be from a mecca display file. Suggested usage
is from the Maximus control file's NewUser2 defined welcome
screen. This is the welcome screen shown once only to new
callers on the system. An example command line for mecca
display files is listed below.
[xtern_run]@extadd.exe -n%k -r%u -uc:\bbs
In the above example -n supplies the maximus task number, -r
supplies the user record number zero based, and -u is the path
to the Maximus user files. Both -n and -r ARE required. The
Maximus path default is the current directory. During execution
EXTAdd enters a line such as the following into the user
description field. Note the '@' character in the above command
line. It IS required, see the Maximus documentation for more
details.
* Record Created: Thu Dec 05 02:27:35 1991
4.6.2 Imported Data
Addition of the -f<path> option to the above example would
write the contents of the file specified by <path> into the
record description field rather than the EXTAdd generated date
string. The imported file could include other user specific
data, baudrate as an example, using a little mecca magic before
the EXTAdd execution command.
EXTADD updates both the User.Bbs file, _and_ the lastuser file.
The lastuser file update is necessary for use online so that
Maximus can be told to reread it, so that the external
description pointer in the user record is not lost at user
logoff (Max updates the user record at that time). Because of
this lastuser updating EXTADD is suitable for online use ONLY.
RECORD DESCRIPTIONS UEDit Page 16
BATCH MODE UEDit Page 17
CHAPTER 5
BATCH MODE
5.1 Operation
UEDit is now able to run in an unattended batch mode for
automated record deletion by date, sorting, and packing. With
the inbuilt functions already available to UEDit, the batch
mode processing is probably the most powerful yet seen for
Maximus-CBCS. Batch mode operation is invoked using the -P
command line switch.
It is IMPORTANT to realise that batch mode makes use of and
requires several settings in the configuration file. These are
the Global Delete screen settings, the #.BBS custom welcome
flag, and the pack save flag.
5.1.1 Features
1) Delete by date with privilege masking, key masking,
expiry masking, credit masking, and unique days setting
per privilege.
2) Sorting by nine keys in forward or reverse direction.
3) Logging records deleted by date.
4) Opus #.BBS custom welcome screen renumbering.
5) Exportation of purged records to a save file.
5.1.2 Deletion
The Global Delete screen settings are used during the batch
process. To operate UEDit in this manner you should use the
Global Delete screen to set the desired delete criteria and
save them with the Configuration Save Settings command.
To avoid possible mishaps should you later change any settings
on the Global Delete screen it's recommended that you save your
batch mode deletion settings to another configuration file.
This is done using the -C command line option. Firstly run
UEDit using -C<name> where <name> is the chosen configuration
file name, set and save your deletion settings, and exit. Then
for batch mode, use the -C and -P switches together. e.g.
"UEDit -Cpack.cfg -P".
BATCH MODE UEDit Page 18
5.1.3 Sorting
Sorting is also possible during batch mode, using the -S#[R]
switch. e.g. "UEDit -Cpack.cfg -P -S2" would run deletion by
date and sort by lastname. The sort control numbers are listed
below.
1 - File Order - Current User File order (the default)
2 - 2st Name - Last name
3 - 1nd Name - First name
4 - Location - City field
5 - Password - Password
6 - Call Date - Date field
7 - Privilege - User Privilege Level
8 - No of Calls - Calls made to the system
9 - Kb DownLoad - Total users downloads
10 - Kb UpLoads - Total users uploads
11 - Telephone - Telephone field
Default sort direction is ascending, use the 'R' control to
force an descending sort. e.g. "UEDit -Cpack.cfg -P -S7R"
indicates sort by privilege level in descending order.
Currently the batch mode sorting does not support multiple key
sorting as is possible with UEDit in manual mode.
5.1.4 Deletion Logging
Logging of deleted records is also possible during batch mode
operation. Note that this is not functional in manual mode. The
-L<path> command line switch activates this function. To
clarify, records logged as deleted in the specified log file
are ONLY those marked deleted during the automatic Global
Delete run. If records already had the delete flag ON before
batch mode was invoked they will be removed or moved during the
run, though not logged in this case. e.g. "UEDit -Cpack.cfg -P
-S7R -Lc:\log\pack.log".
MISCELLANEOUS UEDit Page 19
CHAPTER 6
MISCELLANEOUS
6.1 Problems and Bug Reports
If you have come across any 'features' or have any suggestions
on how to improve UEDit, you can contact us through the net or
via surface mail, at the addresses listed below. All feed back
good AND bad is welcomed. Much of what has changed in UEDit
since the last release is due to feedback offered over the past
years.
Post: CodeLand Australia
P.O.Box 351
Kalamunda W.A. 6076
AUSTRALIA
Fidonet: Perth's Library BBS, Fidonet (3:690/613.0)
Colin Wheat, SysOp.
EchoMail: The International Fidonet Maximus-CBCS support
conference MUFFIN. Maximus programming discussions
are best carried out using the International
Maximus-CBCS development Conference MAXDEV.
OS/2 related problems should be directed to Graham Stair at
Fidonet 3:711/409. Graham will pass problems onto the Author if
need be.
6.2 Latest Version
The magic name UEDIT will always offer the latest MS-DOS beta
version available, and UEDITP will always offer the latest
OS/2 beta version available, on both the author's system
(Fidonet 3:690/613) and on Graham's system (Fidonet 3:711/409).
File requests are always welcome. As with all beta software,
usage is at your own risk. The latest release archive is always
available under it's own name.
6.3 About UEDit
UEDit was written using the Borland range of C compilers. The
current MS-DOS release is compiled using Borland C++ v2.0. The
OS/2 version is compiled using MSC v6.0. Additional Libraries
used included the CXL window Library. Documentation was written
using Qedit and Galaxy.
MISCELLANEOUS UEDit Page 20
APPENDIX A UEDit Page 21
UEDit Configuration File Structure
#define CFG_VER 201
#define _PROFILES 8
#define DATE_OZ 0
#define DATE_US 1
#define DATE_JP 2
#define PRIV_NONE -9
#define XFLAG_EXPDATREL 0x0080
typedef struct _profile { /* UpGrade profile structure */
char title[34]; /* Profile title */
sword priv; /* Access level */
char cdtset; /* Set credit flag */
char expset; /* Set expiry flag */
word credit; /* Matrix credit, in cents */
byte xp_flag; /* Expiry set flags for expiry */
byte xp_rsvd; /* Reserved */
union stamp_combo xp_date; /* Expiry set Bit-mapped date */
word xpp_mths; /* Expiry set relative date in months */
dword xp_mins; /* Expiry set minutes */
word xp_priv; /* Expiry set demote priv */
char keys[32]; /* Key flags */
} PROFILE;
typedef struct _uedit_cfg { /* CFG_VER = 201 */
char title[78]; /* Title string */
int ver; /* Version number */
char key[32][16]; /* Key strings */
char lang[8][9]; /* Language strings */
char comp[16][10]; /* Compression strings */
char priv[12][16]; /* Priviledge strings */
int use_sound; /* Sound setting */
int hide_pwd; /* Hide password */
int purge_export; /* Export purged records */
int wel_renum; /* Renumber Custom welcome files */
int ext_desc; /* External descriptions */
int mxratio; /* MS Mouse X ratio */
int myratio; /* MS Mouse Y ratio */
int date_display; /* Date display type */
/* Global delete */
char gdelpriv[12]; /* Global delete priv process flags */
unsigned int gdeldays[12]; /* Global delete days each priv */
unsigned int gdelcalls[12]; /* Global delete calls each priv */
char gallpriv; /* Global delete all priv process flag */
unsigned int galldays; /* Global delete all days flag */
char gdelkeys[32]; /* Global delete key flags */
int gdelexpiry; /* Global delete expiry set flag */
int gcrtexpiry; /* Global credit expiry set flag */
APPENDIX A UEDit Page 22
/* Global expiry */
char gexppriv[12]; /* Global expiry set priv process flags */
byte xp_flag; /* Global expiry set flags for expiry */
byte xp_rsvd; /* Reserved */
union stamp_combo xp_date; /* Global expiry set Bit-mapped date */
dword xp_mins; /* Global expiry set minutes */
word xp_priv; /* Global expiry set demote priv */
char gexpkeys[32]; /* Global expiry set key flags */
int gcdtexpset; /* Global expiry set credit flag */
int govrexpset; /* Global expiry set overwrite flag */
/* Global keys */
char gkeypriv[12]; /* Global keys set priv process flags */
char gkeykeys[32]; /* Global keys set key flags */
int gkeyexpset; /* Global keys set expiry flag */
int gkeycdtset; /* Global keys set credit flag */
/* Global credit/debit */
char gcdtpriv[12]; /* Global credit priv process flags */
unsigned int gcdtval[12]; /* Global credit value each priv */
char gdbtpriv[12]; /* Global debit priv process flags */
unsigned int gdbtval[12]; /* Global debit value each priv */
char gcdtkeys[32]; /* Global credit/debit key flags */
int gcdtexpiry; /* Global credit/debit expiry set flag */
/* UpGrade profiles */
int pfptr; /* Current profile */
PROFILE profile[_PROFILES]; /* UpGrade profiles */
char reserved[13]; /* Reserved */
} UEDIT_CFG;
APPENDIX B UEDit Page 23
Maximus Descriptions File Structure (USER.EXT)
00 'M' "M!" is the file identification
01 '!'
/ 02 0x0005 usr.lastread_ptr==5 <-- usr.extra points here
| 04 0x0003 Length of description including the NULL
Record 1 | 06 'H' \
Active | 07 'i' |- Description text
\ 08 '\0' /
/ 09 0x0006 usr.lastread_ptr==6 <-- usr.extra points here
| 11 0x8009 Length of description including the NULL
Record 2 | 13 'D' \
Deleted | 14 'e' |
| 15 'l' |
| 16 'e' |
| 17 't' |- Description text
| 18 'e' |
| 19 'd' |
| 20 '!' |
\ 21 '\0' /
/ 22 0x0007 usr.lastread_ptr==7 <-- usr.extra points here
| 24 0x0009 Length of description including the NULL
| 26 'T' \
| 27 'h' |
| 28 'e' |
| 29 ' ' |
Record 3 | 30 'B' |- Description text
Active | 31 'O' |
| 32 'S' |
| 33 'S' |
\ 34 '\0' /
35 EOF End of file
Note that this structure is not stable.